filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
SIEVE1(cons2(s1(N), Y)) -> SIEVE1(filter3(Y, N, N))
ZPRIMES -> SIEVE1(nats1(s1(s1(0))))
SIEVE1(cons2(s1(N), Y)) -> FILTER3(Y, N, N)
FILTER3(cons2(X, Y), s1(N), M) -> FILTER3(Y, N, M)
FILTER3(cons2(X, Y), 0, M) -> FILTER3(Y, M, M)
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
ZPRIMES -> NATS1(s1(s1(0)))
NATS1(N) -> NATS1(s1(N))
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
SIEVE1(cons2(s1(N), Y)) -> SIEVE1(filter3(Y, N, N))
ZPRIMES -> SIEVE1(nats1(s1(s1(0))))
SIEVE1(cons2(s1(N), Y)) -> FILTER3(Y, N, N)
FILTER3(cons2(X, Y), s1(N), M) -> FILTER3(Y, N, M)
FILTER3(cons2(X, Y), 0, M) -> FILTER3(Y, M, M)
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
ZPRIMES -> NATS1(s1(s1(0)))
NATS1(N) -> NATS1(s1(N))
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
NATS1(N) -> NATS1(s1(N))
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
FILTER3(cons2(X, Y), 0, M) -> FILTER3(Y, M, M)
FILTER3(cons2(X, Y), s1(N), M) -> FILTER3(Y, N, M)
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FILTER3(cons2(X, Y), 0, M) -> FILTER3(Y, M, M)
FILTER3(cons2(X, Y), s1(N), M) -> FILTER3(Y, N, M)
POL(0) = 0
POL(FILTER3(x1, x2, x3)) = 2·x1
POL(cons2(x1, x2)) = 1 + 2·x2
POL(s1(x1)) = 0
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
SIEVE1(cons2(s1(N), Y)) -> SIEVE1(filter3(Y, N, N))
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SIEVE1(cons2(s1(N), Y)) -> SIEVE1(filter3(Y, N, N))
Used ordering: Polynomial interpretation [21]:
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
POL(0) = 0
POL(SIEVE1(x1)) = 2·x1
POL(cons2(x1, x2)) = 3·x1 + x2
POL(filter3(x1, x2, x3)) = x1 + 2·x3
POL(s1(x1)) = 1 + 3·x1
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
POL(0) = 0
POL(SIEVE1(x1)) = 2·x1
POL(cons2(x1, x2)) = 2 + x2
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))